-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
feat!: Upgrade min AWS provider and Terraform versions to 6.0
and 1.5.7
respectively
#3412
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
finding the variable optional attributes to be a bit challenging:
which is why this hasn't proceeded. once those are stabilized a bit, we can apply those learnings here and proceed |
@bryantbiggs Looking forward for this release, it's blocking me from upgrading AWS provider to 6.x |
it should land this week - we're just in the final testing/validation phase |
…1.5.7` respectively
…rovider to v3.0, bump VPC module to v6.0
… `user-data` sub-module
…ttribute definitions
… not used in EKS clusters
…k with variable optional attributes
1.5.7
respectively6.0
and 1.5.7
respectively
node_role_arn = local.auto_mode_enabled && length(try(compute_config.value.node_pools, [])) > 0 ? try(compute_config.value.node_role_arn, aws_iam_role.eks_auto[0].arn, null) : null | ||
enabled = compute_config.value.enabled | ||
node_pools = compute_config.value.node_pools | ||
node_role_arn = compute_config.value.node_pools != null ? try(compute_config.value.node_role_arn, aws_iam_role.eks_auto[0].arn, null) : null |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
getting some errors
"compute_config" = {
"enabled" = true
"node_pools" = tolist([
"general-purpose",
])
"node_role_arn" = tostring(null)
}
and the try block get fake passed and then resolves to null. maybe its caused by the new type definition?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor question, and looks great! 👍
@@ -88,12 +108,33 @@ variable "create_iam_role_policy" { | |||
description = "Determines whether an IAM role policy is created or not" | |||
type = bool | |||
default = true | |||
nullable = false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we really need nullable here? We don't have it in many variables.
Description
List of backwards incompatible changes
v1.5.7
is now minimum supported versionv6.0.0
is now minimum supported versionv4.0.0
is now minimum supported versionaws-auth
sub-module has been removed. Users who wish to utilize its functionality can continue to do so by specifying av20.x
version, or~> v20.0
version constraint in their module source.bootstrap_self_managed_addons
is now hardcoded tofalse
. This is a legacy setting and instead users should utilize the EKS addons API, which is what this module does by default. In conjunction with this change, thebootstrap_self_managed_addons
is now ignored by the module to aid in upgrading without disruption (otherwise it would require cluster re-creation).enable_efa_support
or creating placement groups within a node group, users must now specify the correctsubnet_ids
; the module no longer tries to automatically select a suitable subnet.ami_type
now defaults toAL2023_x86_64_STANDARD
enable_monitoring
is now set tofalse
by defaultenable_efa_only
is now set totrue
by defaultuse_latest_ami_release_version
is now set totrue
by defaultami_type
now defaults toAL2023_x86_64_STANDARD
enable_monitoring
is now set tofalse
by defaultenable_efa_only
is now set totrue
by defaultv1
have been removed (i.e.v0.33
); thev1
policy is now used by defaultcreate_pod_identity_association
is now set totrue
by defaultaddons.resolve_conflicts_on_create
is now set to"NONE"
by default (was"OVERWRITE"
).addons.most_recent
is now set totrue
by default (wasfalse
).cluster_identity_providers.issuer_url
is now required to be set by users; the prior incorrect default has been removed. See feat: Starting with1.30
, do not use the cluster OIDC issuer URL by default in the identity provider config #3055 and Prevent conflicts between service account and jwt issuers kubernetes/kubernetes#123561 for more details.oidc-eks
endpoint instead ofoidc.eks
. This is to align with [EKS] [request]: Support for OIDC endpoint with PrivateLink EKS VPC Endpoint aws/containers-roadmap#2038 (comment)Additional changes
Added
region
parameter to specify the AWS region for the resources created if different from the provider region.enable_efa_support
both at the cluster level (to add the appropriate security group rules to the shared node security group) as well as the node group level. However, its not always desirable to have these rules across ALL node groups when they are really only required on the node group where EFA is utilized. And similarly for other use cases, users can create custom rules for a specific node group instead of apply across ALL node groups.Modified
object
types in place of the previously used any type.v4.0
to support the same version requirements as well as the newregion
argument.Variable and output changes
Removed variables:
enable_efa_support
- users only need to set this within the node group configuration, as the module no longer manages EFA support at the cluster level.enable_security_groups_for_pods
- users can instead attach thearn:aws:iam::aws:policy/AmazonEKSVPCResourceController
policy viaiam_role_additional_policies
if using security groups for pods.eks-managed-node-group
sub-modulecluster_service_ipv4_cidr
- users should usecluster_service_cidr
instead (for either IPv4 or IPv6).elastic_gpu_specifications
elastic_inference_accelerator
platform
- this is superseded byami_type
placement_group_strategy
- set tocluster
by the moduleplacement_group_az
- users will need to specify the correct subnet insubnet_ids
create_schedule
schedules
self-managed-node-group
sub-moduleelastic_gpu_specifications
elastic_inference_accelerator
platform
- this is superseded byami_type
create_schedule
schedules
placement_group_az
- users will need to specify the correct subnet insubnet_ids
hibernation_options
- not valid in EKSmin_elb_capacity
- not valid in EKSwait_for_elb_capacity
- not valid in EKSwait_for_capacity_timeout
- not valid in EKSdefault_cooldown
- not valid in EKStarget_group_arns
- not valid in EKSservice_linked_role_arn
- not valid in EKSwarm_pool
- not valid in EKSfargate-profile
sub-modulekarpenter
sub-moduleenable_v1_permissions
- v1 permissions are now the defaultenable_irsa
irsa_oidc_provider_arn
irsa_namespace_service_accounts
irsa_assume_role_condition_test
Renamed variables:
cluster_*
have been stripped of the prefix to better match the underlying API:cluster_name
->name
cluster_version
->kubernetes_version
cluster_enabled_log_types
->enabled_log_types
cluster_force_update_version
->force_update_version
cluster_compute_config
->compute_config
cluster_upgrade_policy
->upgrade_policy
cluster_remote_network_config
->remote_network_config
cluster_zonal_shift_config
->zonal_shift_config
cluster_additional_security_group_ids
->additional_security_group_ids
cluster_endpoint_private_access
->endpoint_private_access
cluster_endpoint_public_access
->endpoint_public_access
cluster_endpoint_public_access_cidrs
->endpoint_public_access_cidrs
cluster_ip_family
->ip_family
cluster_service_ipv4_cidr
->service_ipv4_cidr
cluster_service_ipv6_cidr
->service_ipv6_cidr
cluster_encryption_config
->encryption_config
create_cluster_primary_security_group_tags
->create_primary_security_group_tags
cluster_timeouts
->timeouts
create_cluster_security_group
->create_security_group
cluster_security_group_id
->security_group_id
cluster_security_group_name
->security_group_name
cluster_security_group_use_name_prefix
->security_group_use_name_prefix
cluster_security_group_description
->security_group_description
cluster_security_group_additional_rules
->security_group_additional_rules
cluster_security_group_tags
->security_group_tags
cluster_encryption_policy_use_name_prefix
->encryption_policy_use_name_prefix
cluster_encryption_policy_name
->encryption_policy_name
cluster_encryption_policy_description
->encryption_policy_description
cluster_encryption_policy_path
->encryption_policy_path
cluster_encryption_policy_tags
->encryption_policy_tags
cluster_addons
->addons
cluster_addons_timeouts
->addons_timeouts
cluster_identity_providers
->identity_providers
eks-managed-node-group
sub-modulecluster_version
->kubernetes_version
self-managed-node-group
sub-modulecluster_version
->kubernetes_version
delete_timeout
->timeouts
fargate-profile
sub-modulekarpenter
sub-moduleAdded variables:
region
eks-managed-node-group
sub-moduleregion
partition
- added to reduce number ofGET
requests from data sources when possibleaccount_id
- added to reduce number ofGET
requests from data sources when possiblecreate_security_group
security_group_name
security_group_use_name_prefix
security_group_description
security_group_ingress_rules
security_group_egress_rules
security_group_tags
self-managed-node-group
sub-moduleregion
partition
- added to reduce number ofGET
requests from data sources when possibleaccount_id
- added to reduce number ofGET
requests from data sources when possiblecreate_security_group
security_group_name
security_group_use_name_prefix
security_group_description
security_group_ingress_rules
security_group_egress_rules
security_group_tags
fargate-profile
sub-moduleregion
partition
- added to reduce number ofGET
requests from data sources when possibleaccount_id
- added to reduce number ofGET
requests from data sources when possiblekarpenter
sub-moduleregion
Removed outputs:
eks-managed-node-group
sub-moduleplatform
- this is superseded byami_type
autoscaling_group_schedule_arns
self-managed-node-group
sub-moduleplatform
- this is superseded byami_type
autoscaling_group_schedule_arns
fargate-profile
sub-modulekarpenter
sub-moduleRenamed outputs:
eks-managed-node-group
sub-moduleself-managed-node-group
sub-modulefargate-profile
sub-modulekarpenter
sub-moduleAdded outputs:
eks-managed-node-group
sub-modulesecurity_group_arn
security_group_id
self-managed-node-group
sub-modulesecurity_group_arn
security_group_id
fargate-profile
sub-modulekarpenter
sub-moduleMotivation and Context
http_put_response_hop_limit = 1
by default #3333Breaking Changes
How Has This Been Tested?
examples/*
to demonstrate and validate my change(s)examples/*
projectspre-commit run -a
on my pull request